package com.ft.oa.domain.customer;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ft.oa.domain.dto.knowledgeBase.AttachmentDto;
import com.ft.oa.utils.SecurityUtils;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * 客户跟踪实体类
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true) //生成的set默认返回值为this，false返回值是void
@TableName(value = "customer_tail",autoResultMap = true)
public class CustomerTail {

  @TableId(type = IdType.AUTO)
  /**
   * 客户跟踪ID
   */
  private Long id;
  /**
   * 公司名称
   */
  private String name;//必传
  /**
   * 跟进方式
   */
  private Integer maintenanceMode;//必传
  /**
   * 跟进人员
   */
  private String maintenanceName;//必传
  /**
   * 跟进效果
   */
  private Integer maintenanceResult;//必传
  /**
   * 备注
   */
  private String remarks;
  /**
   * 跟踪计划
   */
  private String tailPlan;
  /**
   * 公司id
   */
  private Integer customerId;
  /**
   * 跟进时间
   */
  @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
  private Date maintenanceData;
  /**
   * 其他方式
   */
  private String maintenanceElse;
  /**
   * 客户对接人
   */
  private String personnel;
  /**
   * 所属部门 （1：高层 2：人力 3：财务 4：售前 5：项目 6：采购 7：工程 8：其他）
   */
  private Integer departa;
  /**
   * 当前岗位  （1：总经理 2：副总经理 3：总裁助理 4：部门经理 5：高级商务经理 6：员工 7：其他）
   */
  private Integer currentaPosta;
  /**
   * 联系电话
   */
  private String phone;

  @TableField(exist = false)
  private List<AttachmentDto> attachments; //前端返回的接受对象

  private String attachmentRel; // 存库字段  json类型的

  /**
   * 创建人id
   */
  private Long creator = SecurityUtils.getCurrentUser().getId();

  /**
   * 创建时间
   */
  @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
  private LocalDateTime createTime = LocalDateTime.now();

  /**
   * 修改时间
   */
  @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
  private LocalDateTime updateTime = LocalDateTime.now();

  /**
   * 修改人id
   */
  private Long editor = SecurityUtils.getCurrentUser().getId();

}
